//
//  LYJDateService.h
//  Pods
//
//  Created by 李亚军 on 17/3/28.
//
//

#import <Foundation/Foundation.h>

@interface LYJDateService : NSObject

/**
 作用: 时间字符串转化为时间戳
 
 @param timeString 时间字符串
 @param timeFormatter 时间字符串的格式,这个格式必须与时间字符串保持一致,不然会报错,例如时间字符串 2017/10/31 16:30:30,那么时间字符串格式输入参数:yyyy/MM/dd HH:mm:ss
 @return 返回的时间戳,包含时间戳
 */
+ (NSTimeInterval)timeStringToTimestampWithTimeString:(NSString *)timeString timeFormatter:(NSString *)timeFormatter;


/**
 作用: 时间戳转化为指定格式的时间字符串
 
 @param timestamp 时间戳
 @param timeFormatter 指定的时间格式
 @return 返回指定格式的时间字符串
 */
+ (NSString *)timestampToDateStringWithTimeStamp:(NSTimeInterval)timestamp timeFormatter:(NSString *)timeFormatter;


/**
 作用: 获取某一天的时间戳
 
 @param dayNumber 距离今天的天数,可以为负数,例如: 0: 代表今天, 1: 代表明天 , 2: 代表后天 ... , -1: 代表昨天 , -2: 代表前天 ...
 @return 返回时间戳(不包含毫秒)
 */
+ (NSTimeInterval)getOneDayTimestampFromTodayWithDayNumber:(NSInteger)dayNumber;


/**
 作用: 获取距离今天某一天的当前小时延迟n个小时后的时间戳,例如当前时间2017/10/27 08:55:45 , 获取今天延迟一个小时候的时间戳 dayNumber:0 , delayHourTime: 1
 
 @param dayNumber 距离今天的某一天,可以为负数(-1: 代表昨天 , 0: 代表今天 , 1: 代表明天)
 @param delayHourTime 延迟的小时:( -1: 假如当前3点50分,-1代表2点50分 , 0: 假如当前3点50分,0代表3点50分 , 1: 假如当前3点50分,-1代表2点50分)
 @return 返回时间戳(到秒)
 */
+ (NSTimeInterval)getOneDayTimestampFromTodayWithDayNumber:(NSInteger)dayNumber delayHourTime:(NSInteger)delayHourTime;


/**
 作用: 获取距离今天 N 天的星期
 
 @param dayNumber 距离今天 N 天的日期 , 0代表今天, -1昨天, 1:明天
 @param weekArray 星期数组,如果为nil默认星期数组 @[@"周日" , @"周一" , @"周二" , @"周三" , @"周四" , @"周五" , @"周六" , @"周日"]
 @return 返回星期的字符串,返回类型为星期数组中的内容
 */
+ (NSString *)getOneDayWeekFromTodayWithDayNumber:(NSInteger)dayNumber weekArray:(NSArray *)weekArray;


/**
 作用: 根据时间戳获取某天的星期 , dayNumber: 0 - 代表该天 , 1 - 代表延迟一天, -1 - 代表提前一天
 
 @param timestamp 某天的时间戳
 @param dayNumber 距离该天的天数差
 @param weekArray 星期数组(如果为nil ,默认数组 @[@"周日" , @"周一" , @"周二" , @"周三" , @"周四" , @"周五" , @"周六" , @"周日"])
 @return 返回某天的星期
 */
+ (NSString *)getOneDayWeekFromOnedayTimestamp:(NSTimeInterval)timestamp dayNumber:(NSInteger)dayNumber weekArray:(NSArray *)weekArray;

@end
